#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Times;
using Cephei.QL.Termstructures;
using Cephei.QL.Termstructures.Volatility.Equityfx;
using Cephei.QL;
namespace Cephei.QL.Termstructures.Yield
{
     // <summary> 
	// ! Quanto term structure for modelling quanto effect in option pricing.  \note This term structure will remain linked to the original structures, i.e., any changes in the latters will be reflected in this structure as well.
	// </summary>
    [Guid ("6329CF85-B007-465a-B32E-B5AB6C814968"),ComVisible(true)]
	public interface IQuantoTermStructure : Cephei.QL.Termstructures.Yield.IZeroYieldStructure
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Cephei.QL.Times.ICalendar Calendar {get;}
        
		 Cephei.QL.Times.IDayCounter DayCounter {get;}
        
		 DateTime MaxDate {get;}
        
		 DateTime ReferenceDate {get;}
        
		 UInt32 SettlementDays {get;}
    }

    // <summary> 
	// ! Quanto term structure for modelling quanto effect in option pricing.  \note This term structure will remain linked to the original structures, i.e., any changes in the latters will be reflected in this structure as well. Factory
	// </summary>
   	[ComVisible(true)]
    public interface IQuantoTermStructure_Factory // : Collection_Factory<IQuantoTermStructure, ICell<IQuantoTermStructure>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IQuantoTermStructure Create (Cephei.QL.Termstructures.IYieldTermStructure underlyingDividendTS, Cephei.QL.Termstructures.IYieldTermStructure riskFreeTS, Cephei.QL.Termstructures.IYieldTermStructure foreignRiskFreeTS, Cephei.QL.Termstructures.Volatility.Equityfx.IBlackVolTermStructure underlyingBlackVolTS, Double strike, Cephei.QL.Termstructures.Volatility.Equityfx.IBlackVolTermStructure exchRateBlackVolTS, Double exchRateATMlevel, Double underlyingExchRateCorrelation);
    }
}

